我有以下字符串:
[?]塔利班已经走高科技。这给美国带来了两难困境塔利班夜间袭击的频率和凶猛与阿富汗部队在全国各地的小型检查站进行的企图有关,这些部队占领了从武装分子手中夺走的领土。阿富汗军队表示,失踪的装置被报道为“战斗损失”,#34;但根据文件的说法,不能用任何证据或记录来支持这种说法,以解释它们何时何地被遗忘。在夏季和秋季,阿富汗国民军在坎大哈周围的伤亡人数比2016年同期减少了15%。文件记录了夜视设备的明显减少,得出的结论是,这些设备是“成为”基地防御计划的一个组成部分。"美国军方现在正计划为该部队装备大约2,500架夜视镜,作为文件所描述的永久性计划概念的一部分。"美国驻阿富汗部队发言人汤姆格雷贝克上尉拒绝评论将这些装置分发给阿富汗国民军的计划,如军事文件所述。通过夜视装置,塔利班战斗机能够在攻击前几乎未被发现进入阿富汗基地。塔利班发言人Zabihullah Mujahid表示,战斗人员在攻击阿富汗基地或俘获阿富汗安全部队成员后获得了夜视装置。在赫尔曼德省,海军陆战队的顾问正在帮助阿富汗国家警察第505区要求接收夜视装置,Col.Reduced
并且,我希望获得以下输出(删除" [?]"和"减少"):
塔利班已经走高科技。这给美国带来了两难困境塔利班夜间袭击的频率和凶猛与阿富汗部队在全国各地的小型检查站进行的企图有关,这些部队占领了从武装分子手中夺走的领土。阿富汗军队表示,失踪的装置被报道为“战斗损失”,#34;但根据文件的说法,不能用任何证据或记录来支持这种说法,以解释它们何时何地被遗忘。在夏季和秋季,阿富汗国民军在坎大哈周围的伤亡人数比2016年同期减少了15%。文件记录了夜视设备的明显减少,得出的结论是,这些设备是“成为”基地防御计划的一个组成部分。"美国军方现在正计划为该部队装备大约2,500架夜视镜,作为文件所描述的永久性计划概念的一部分。"美国驻阿富汗部队发言人汤姆格雷贝克上尉拒绝评论将这些装置分发给阿富汗国民军的计划,如军事文件所述。通过夜视装置,塔利班战斗机能够在攻击前几乎未被发现进入阿富汗基地。塔利班发言人Zabihullah Mujahid表示,战斗人员在攻击阿富汗基地或俘获阿富汗安全部队成员后获得了夜视装置。在赫尔曼德省,海军陆战队的顾问正在帮助阿富汗国家警察第505区要求接收夜视设备,Col。
在python上,以下正则表达式成功地删除了" [?]"和#34;缩减":'\[\?]\s*(.*?)Reduced'
。但是,在Javascript上,相同的正则表达式返回:
?]塔利班已经走高科技。这给美国带来了两难困境塔利班夜间袭击的频率和凶猛与阿富汗部队在全国各地的小型检查站进行的企图有关,这些部队占领了从武装分子手中夺走的领土。阿富汗军队表示,失踪的装置被报道为“战斗损失”,#34;但根据文件的说法,不能用任何证据或记录来支持这种说法,以解释它们何时何地被遗忘。在夏季和秋季,阿富汗国民军在坎大哈周围的伤亡人数比2016年同期减少了15%。文件记录了夜视设备的明显减少,得出的结论是,这些设备是“成为”基地防御计划的一个组成部分。"美国军方现在正计划为该部队装备大约2,500架夜视镜,作为文件所描述的永久性计划概念的一部分。"美国驻阿富汗部队发言人汤姆格雷贝克上尉拒绝评论将这些装置分发给阿富汗国民军的计划,如军事文件所述。通过夜视装置,塔利班战斗机能够在攻击前几乎未被发现进入阿富汗基地。塔利班发言人Zabihullah Mujahid表示,战斗人员在攻击阿富汗基地或俘获阿富汗安全部队成员后获得了夜视装置。在赫尔曼德省,海军陆战队的顾问正在帮助阿富汗国家警察第505区要求接收夜视装置,Col.Reduced,]塔利班已经走高科技。这给美国带来了两难困境塔利班夜间袭击的频率和凶猛与阿富汗部队在全国各地的小型检查站进行的企图有关,这些部队占领了从武装分子手中夺走的领土。阿富汗军队表示,失踪的装置被报道为“战斗损失”,#34;但根据文件的说法,不能用任何证据或记录来支持这种说法,以解释它们何时何地被遗忘。在夏季和秋季,阿富汗国民军在坎大哈周围的伤亡人数比2016年同期减少了15%。文件记录了夜视设备的明显减少,得出的结论是,这些设备是“成为”基地防御计划的一个组成部分。"美国军方现在正计划为该部队装备大约2,500架夜视镜,作为文件所描述的永久性计划概念的一部分。"美国驻阿富汗部队发言人汤姆格雷贝克上尉拒绝评论将这些装置分发给阿富汗国民军的计划,如军事文件所述。通过夜视装置,塔利班战斗机能够在攻击前几乎未被发现进入阿富汗基地。塔利班发言人Zabihullah Mujahid表示,战斗人员在攻击阿富汗基地或俘获阿富汗安全部队成员后获得了夜视装置。在赫尔曼德省,海军陆战队的顾问正在帮助阿富汗国家警察第505区要求接收夜视装置,上校
(它无法完全剥离[?])。
我在python上测试了正则表达式,它按预期工作:https://regex101.com/r/T16EcU/1/
然而,正如预期的那样,当我使用Javascript进行测试时,它无法删除[?]:https://regex101.com/r/XKtn7s/1
如何修改正则表达式以使其适用于javascript?
值得注意的是,有时初始字符串在[?]后面会有一个空格,而不是直接使用""在[?]之后。
这是我的Javascript代码:
//"documentBodyText.match" equals the sample string I gave in the post
const summary = documentBodyText.match('\[\?]\s*(.*?)Reduced');
console.log(summary);
这是我的python代码:
//summary_page_text equals the sample string I gave in the post
target_quote_object = re.search('\[\?]\s*(.*?)Reduced', summary_page_text)
target_quote_text = target_quote_object.group(1)
print(target_quote_text)
答案 0 :(得分:1)
使用.match("\[\?]\s*(.*?)Reduced")
时,正则表达式是使用构造函数表示法构建的,并且单个反斜杠会丢失,因此您的正则表达式实际上是[?]s*(.*?)Reduced
,并且它与文字?
匹配,那么零个或多个s
个字符,然后捕获任何0 +字符到第一个Reduced
。不是你想要的。
您需要使用正则表达式文字定义正则表达式,并以与Python相同的方式访问第1组:
var m = s.match(/\[\?]\s*(.*?)Reduced/); // Get the match
if (m) // If there was a match
console.log(m[1]) // Grab what is in Group 1
参见JS演示:
var s ='[?]The Taliban Have Gone High-Tech. That Poses a Dilemma for the U.S. The frequency and ferocity of the nighttime Taliban attacks are linked to attempts by Afghan forces, based in small checkpoints across the country, to hold territory that has been wrested away from the militants. Afghan troops said the missing devices were reported as "Battle losses," but could not support that claim with any proof or records to explain where or when they were left behind, according to the documents. Over the summer and fall, the Afghan National Army suffered 15 percent fewer casualties around Kandahar than it had during the same period in 2016.The documents credited the night-vision equipment for the marked reduction, concluding that the devices are "Becoming an integral part of base defense plans." The American military is now planning to equip the unit with roughly 2,500 night-vision goggles as part of what the documents described as a concept for a "Permanent program." Capt. Tom Gresback, a spokesman for United States forces in Afghanistan, declined to comment on the plans to distribute the devices to the Afghan National Army, as outlined in the military documents. With the night-vision devices, Taliban fighters have been able to approach Afghan bases nearly undetected before attacking. Zabihullah Mujahid, a spokesman for the Taliban, said fighters obtained night-vision devices after attacking Afghan bases or capturing members of the Afghan security forces. In Helmand Province, Marine Corps advisers are helping a request by the 505th Zone of the Afghan National Police to receive night-vision devices, Col.Reduced';
var m = s.match(/\[\?]\s*(.*?)Reduced/);
if (m)
console.log(m[1])