2015-09-25 36 views
-1

我认为这可能很容易,但我没有时间学习如何去做。如何使用正则表达式从字符串中提取某个数字?

在HTML文件中,我有一定的阶级段,let's说:

<p class="footnote"></p> 

的“P”标签总是跟着数字,由一个在每种情况下增加。假设第一个数字是“43”。我希望一系列数字从1开始,所以我需要从所有段落中减去42。

例如,我本来想去来自:

<p class="footnote">43. Lorem</p> 
<p class="footnote">44. Ipsum</p>. 
<p class="footnote">45. Dolor</p>. 

<p class="footnote">1. Lorem</p> 
<p class="footnote">2. Ipsum</p>. 
<p class="footnote">3. Dolor</p>. 

我该怎么办呢?

+0

来源说,正则表达式不能做数学。 http://stackoverflow.com/questions/5245087/math-operations-in-regex 如果您正在使用InDesign,则需要使用脚本。 – user1754036

回答

0

如果你要寻找的是会处理<p class="footnote">43. Lorem</p>答案是don't parse HTML with regex正则表达式。

假设您已经提取从标签字符串43. Lorem,并要得到一个数字出来那就要看你的需求:

为了找到任何数量:\d+

为了找到任何数量的开始:^\d+

要找到大量随后一段:\d+\.

更完整的解决方案将需要有关的详细信息包括您想要使用的编程语言在内的问题。

+0

好吧,我想我必须找到一种替代解决方案。 –

0

使用javascript获取文本(尽管我将使用jQuery),分割文本,获取第一个元素,并转换为整数。

$(".footnote").each(function(){ 
    var text = $(this).text(); // Get text 
    var num = text.split(/\s+/g)[0]; // Split by whitespace and get the first elem 
    console.log(parseInt(num)); // Convert the elem to an int 
}); 
相关问题