我想查找字符串中是否存在某种单词模式。例如,在下面的字符串中,我想知道是否出现“愿望”和“允许”这两个词。在这里,订购很重要,所以我想只在“允许”出现在“允许”之前返回True。 “我希望平台能够让人们改变设置” 结果:是的 一个反例: “我允许我的设置改变,只希望这可以逆转” 结果:错误
任何帮助将不胜感激
答案 0 :(得分:2)
我去了Regex101.com并创建了一个符合您需求的Regex表达式:
/wish(.?|.*)allow/
这意味着"找到' wish'文本中的任何位置,后跟零个,一个或许多其他字符,后跟单词' allow'"。
Regex101.com是一款用于构建Regex表达式的沙盒。任何时候我都不确定应该如何格式化正则表达式模式匹配,我使用这个工具。
答案 1 :(得分:0)
您可以尝试使用我在javascript中实现的概念。
你总是得到刚出现在南瓜之前的结果苹果。
<html>
<body>
<p>Click the button to display the last position of the element "Apple" before pumpkin</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var fruits = ["Banana","Orange","Apple","Mango","Banana","Orange","Apple","Mango","pumpkin","Apple"];
var a = fruits.indexOf("pumpkin");
var b = fruits.lastIndexOf("Apple",a);
var x = document.getElementById("demo");
x.innerHTML = b;
}
</script>
</body>
</html>
答案 2 :(得分:0)
你实际上并不需要正则表达式:
def checkwordorder(phrase, word1, word2):
try:
return phrase.lower().index(word1.lower()) < phrase.lower().index(word2.lower())
except ValueError:
return False
>>> checkwordorder('I wish the platform gave the ability to allow one to change settings', 'wish', 'allow')
True
>>> checkwordorder('I allowed my setting to change, only wish this could be reversed', 'wish', 'allow')
False