我是正则表达式的新手。
是否可以匹配满足特定条件的单词之前的所有内容:
例如
这是一个测试 - -+++ 这是一个测试
我希望它遇到以大写字母开头且下一个字符为小写字母的单词。这构成了一个恰当的词。然后我想删除那个词之前的所有内容。
上面的例子应该产生:This is a test
我只想进行此处理,直到它找到合适的词然后停止。
如有任何帮助,我们将不胜感激。
谢谢
最佳答案
替换
^.*?(?=[A-Z][a-z])
为空字符串。这适用于 ASCII 输入。对于非 ASCII 输入(Unicode、其他语言),应用不同的策略。
解释
.*? Everything, until
(?= followed by
[A-Z] one of A .. Z and
[a-z] one of a .. z
)
启用 Java Unicode 的变体是这样的:
^.*?(?=\p{Lu}\p{Ll})
关于java - 如何使用正则表达式匹配某类词前的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/559254/