如何使用正则表达式匹配某种类型的单词之前的所有内容

Joh*_*aly 18 java regex

我是正则表达式的新手.

是否可以在满足特定条件的单词之前匹配所有内容:

例如

这是一个测试 - - +++这是一个测试

我希望它遇到一个以大写字母开头的单词,下一个字符是小写字母.这构成了一个恰当的词.然后我想删除那个词之前的所有内容.

上面的例子应该产生:这是一个测试

我只想要这个处理,直到它找到正确的单词,然后停止.

任何帮助,将不胜感激.

谢谢

Tom*_*lak 48

更换

^.*?(?=[A-Z][a-z])
Run Code Online (Sandbox Code Playgroud)

用空字符串.这适用于ASCII输入.对于非ASCII输入(Unicode,其他语言),适用不同的策略.

说明

.*?    Everything, until
(?=    followed by
[A-Z]  one of A .. Z and
[a-z]  one of a .. z
)
Run Code Online (Sandbox Code Playgroud)

支持Java Unicode的变体将是这样的:

^.*?(?=\p{Lu}\p{Ll})
Run Code Online (Sandbox Code Playgroud)