regex - 正则表达式:如何在某个单词之后按字母顺序查找任意长度的单词
问题描述
如果给定一个像 PLEASE 这样的单词,我可以写什么正则表达式来匹配字典中该单词之后的任何单词,按字母顺序排列。
例如,给定 PLEASE: APPLE 将不匹配,但 POST 将匹配,POW 将匹配,MEAGER 将匹配,等等。它后面的任何内容按字母顺序排列。
我特别挣扎,因为长度可以变长或变短。RegEx 是必需的,我不能使用任何其他搜索工具。
解决方案
你可以使用类似的东西:
^(?:[Q-Z]|P[M-Z]|PL[F-Z]|PLE[B-Z]|PLEA[T-Z]|PLEAS[F-Z]|PLEASE\w)\w*$
此正则表达式匹配以以下开头的单词:
- 一封来自
Q
toZ
或 P
后跟来自M
toZ
或PL
后跟来自F
toZ
或PLE
后跟来自B
toZ
或PLEA
后跟来自T
toZ
或PLEAS
后跟来自F
toZ
或PLEASE
后跟任何其他字母
注意:这仅适用于没有变音符号的拉丁字母。
推荐阅读
- flutter - 如何在 Flutter 中创建多行 SnackBar?
- laravel - 如何从 laravel 的附加域中的存储文件夹中获取图像?
- javascript - 如果我在 React 路由器 v5 中有子路由,则 React 路由完全不起作用
- python - 我如何表达比 Python 更大的内容
- javascript - 如何防止 Mozilla Firefox 使用多个 TCP 连接?
- parsing - 从一行打印某些以 x 开头的单词
- javascript - AjaxSubmit 提交表单两次(或 3 次或 20 次)
- javascript - 将 DataURL 画布图像附加为文件附件
- python - 通过脚本启用 Safari 扩展
- android - 如何以编程方式获取华为应用市场上的应用版本?