正则表达式 - 如果它位于单词的末尾,则按点分割

时间:2015-02-24 09:49:45

标签: c# regex vb.net

下一个正则表达式按空格和逗号分割。

New Text.RegularExpressions.Regex("[ ,]+")

此外,我希望只有在单词的末尾找到点时才用点进行拆分。

例如:

"text." - Split.
"2.2"   - Don't Split.
"2.a"   - Don't Split.

这是我的正则表达式:

New Text.RegularExpressions.Regex("[ ,]+")

(如果我在逗号后添加点,它会分割点而不考虑它们在字符串中的位置)

任何帮助表示赞赏!

4 个答案:

答案 0 :(得分:1)

  • ^行的开头
  • $行尾
  • \ b字边界
  • \ B非字边界
  • \ A输入的开头
  • \ G上一场比赛结束
  • \ Z输入的结尾,但是对于最终的终结符,如果有的话
  • \ z输入结束

http://docs.oracle.com/javase/tutorial/essential/regex/bounds.html

试试吧

New Text.RegularExpressions.Regex("[ ,]+$")

答案 1 :(得分:1)

[ ,]+|\.$

[ ,]+|\\.$

试试这个。参见demo.Use Multiline模式。

https://regex101.com/r/aI4rA5/6

答案 2 :(得分:0)

您可以在点后添加单词边界测试。试试这个:

[ ,]+|\.\b

在您的情况下,请按以下方式使用:

New Text.RegularExpressions.Regex("[ ,]+|\\.\\b")

或(首选)

New Text.RegularExpressions.Regex(@"[ ,]+|\.\b")

答案 3 :(得分:0)

您只需使用$来表示行尾

   New Text.RegularExpressions.Regex("[ ,]+.$")