开发者

regular expression for ends with some word

I want 开发者_如何学Goto build regular expression for series

cd1_inputchk,rd_inputchk,optinputchk where inputchk is common (ending characters)

please guide for the same


Very simply, it's:

/inputchk$/

On a per-word basis (only testing matching /inputchk$/.test(word) ? 'matches' : 'doesn\'t match';). The reason this works, is it matches "inputchk" that comes at the end of a string (hence the $)

As for a list of words, it starts becoming more complicated.

  • Are there spaces in the list?
  • Are they needed?

I'm going to assume no is the answer to both questions, and also assume that the list is comma-separated.

There are then a couple of ways you could proceed. You could use list.split() to get an array of each word, and teast each to see if they end in inputchk, or you could use a modified regular expression:

/[^,]*inputchk(?:,|$)/g

This one's much more complicated.

  • [^,] says to match non-, characters
  • * then says to match 0 or more of those non-, chars. (it will be greedy)
  • inputchk matches inputchk
  • (?:...) is a non-capturing parenthesis. It says to match the characters, but not store the match as part of the result.
  • , matches the , character
  • | says match one side or the other
  • $ says to match the end of the string

Hopefully all of this together will select the strings that you're looking for, but it's very easy to make a mistake, so I'd suggest doing some rigorous testing to make sure there aren't any edge-conditions that are being missed.


This one should work (dollar sign basically means "end of string"):

/inputchk$/
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜