易语言:正则表达式如何取多行文本中的内容

易语言:正则表达式如何取多行文本中的内容,第1张

开始关键字([\s\S])结束关键字

----应用实例:-----------------

<table>

<tr>

<td>单元格1</td><td>单元格2</td>

</tr>

<tr>

<td>单元格3</td><td>单元格4</td>

</tr>

</table>

正则表达式创建

(“<tr>([\s\S])</tr>”)

可以使用each循环来实现:

$("#datalist1 tr")each(function(){ // 循环每一行

var one=$(this)find("td:eq(0)")find("input")val(); //取第一列中input的值

var two=$(this)find("td:eq(1)")find("input")val(); // 取第二列中input的值

var three=one+tow; // 两列值相加

$(this)find("td:eq(2)")find("input")val(three); // 赋值给第三列中的intput

})

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" ">

这篇文章介绍的内容是html如何只显示部分td文字,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

可以直接这样写:

HTML如何让table中的td内容过长显示为固定长度,多余部分用省略号代替

这个问题呢,是由于我们公司测试的部门测出来的,虽然说测试的内容本身就是个BUG,不过这个也让我学到了一个比较好的归类于布局的一个小技巧,就是将td标签中过长的内容只显示为这个td的width的长度,之后的便以省略号代替。

方式如下:

这个功能有一个前提,在table中必须设置style:

table-layout: fixed;

这条属性就是让table的内部布局固定大小。这个时候就用width属性调节td的长度。

之后在添加如下:属性描述

white-space:nowrap;规定段落中的文本不进行换行

overflow:hidden;关闭滚动条

text-overflow: ellipsis;溢出的文字显示为省略号

这个时候你会发现,就算变成了省略号,就会出现不知道内容完整的是什么?

所以这个时候可以考虑使用td的title属性,在title属性中设置内容为显示内容,这样只要光标停留在td处就可以显示全部的内容,如果觉得这个不够劲。可以考虑自己写一个mouseover事件,让内容全部显示,显示的方式是自动换行,如果不换行就会出现很难看的样式。

so:换行也需要table-layout: fixed;

在(IE浏览器)长串英文自动回行

方法1:同时加入word-wrap:break-word;

一、正则表达式概述

如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。

请回想一下在硬盘上是如何查找文件的。您肯定会使用 和 字符来帮助查找您正寻找的文件。 字符匹配文件名中的单个字符,而 则匹配一个或多个字符。一个如 'datadat' 的模式可以找到下述文件:data1dat、data2dat等等。如果使用 字符代替 字符,则将扩大找到的文件数量。'datadat' 可以匹配下述所有文件名:datadat、data1dat、data12dat等等,尽管这种搜索文件的方法肯定很有用,但也十分有限。 和 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。

在我们编写ASP程序时,经常会判断一个字符串的有效性,如;一个串是否是数字、是否是有效的Email地址等等。如果不使用正则表达式,那么判断的程序会很长,并且容易出错,如果使用正则表达式,这些判断就是一件很轻松的工作了。后面我们将介绍如何判断数字和Email地址的有效性。

在典型的搜索和替换 *** 作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。

使用正则表达式,能完成些什么事情呢?

测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个xyk号码模式。这称为数据有效性验证。

替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。

根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。

例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。

那么,正则表达式语法的语法是如何呢?

一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

这里有一些可能会遇到的正则表达式示例:

/^\[ \t]$/ "^\[ \t]$" 匹配一个空白行。

/\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。

/<()><\/\1>/ "<()><\/\1>" 匹配一个 HTML 标记。

二、正则表达式在VBScript中的应用

VBScript使用RegExp对象、Matches集合以及Match对象提供正则表达式支持功能。我们还是先看一个例子。

<%

Function RegExpTest(patrn, strng)

Dim regEx, Match, Matches '建立变量。

Set regEx = New RegExp '建立正则表达式。

regExPattern = patrn '设置模式。

regExIgnoreCase = True '设置是否区分字符大小写。

regExGlobal = True '设置全局可用性。

Set Matches = regExExecute(strng) '执行搜索。

For Each Match in Matches '遍历匹配集合。

RetStr = RetStr & "Match found at position "

RetStr = RetStr & MatchFirstIndex & " Match Value is '"

RetStr = RetStr & MatchValue & "'" & "<BR>"

Next

RegExpTest = RetStr

End Function

responsewrite RegExpTest("[ij]s", "IS1 Js2 IS3 is4")

%>

在这个例子中,我们查找字符串中有无is或者js这两个词,忽略大小写。运行的结果如下:

Match found at position 0 Match Value is 'IS1'

Match found at position 4 Match Value is 'Js2'

Match found at position 8 Match Value is 'IS3'

Match found at position 12 Match Value is 'is4'

下面我们就介绍这三个对象和集合。

1、RegExp对象是最重要的一个对象,它有几个属性,其中:

○Global 属性,设置或返回一个 Boolean 值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。如果搜索应用于整个字符串,Global 属性的值为 True,否则其值为 False。默认的设置为 False。

○IgnoreCase 属性,设置或返回一个Boolean值,指明模式搜索是否区分大小写。如果搜索是区分大小写的,则 IgnoreCase 属性为 False;否则为 True。缺省值为 False。

○Pattern 属性,设置或返回被搜索的正则表达式模式。必选项。总是一个 RegExp 对象变量。

2、Match 对象

匹配搜索的结果是存放在Match对象中,提供了对正则表达式匹配的只读属性的访问。 Match 对象只能通过 RegExp 对象的 Execute 方法来创建,该方法实际上返回了 Match 对象的集合。所有的 Match 对象属性都是只读的。在执行正则表达式时,可能产生零个或多个 Match 对象。每个 Match 对象提供了被正则表达式搜索找到的字符串的访问、字符串的长度,以及找到匹配的索引位置等。

○FirstIndex 属性,返回在搜索字符串中匹配的位置。FirstIndex 属性使用从零起算的偏移量,该偏移量是相对于搜索字符串的起始位置而言的。换言之,字符串中的第一个字符被标识为字符 0

○Length 属性,返回在字符串搜索中找到的匹配的长度。

○Value 属性,返回在一个搜索字符串中找到的匹配的值或文本。

3、Matches 集合

正则表达式 Match 对象的集合。Matches 集合中包含若干独立的 Match 对象,只能使用 RegExp 对象的 Execute 方法来创建之。与独立的 Match 对象属性相同,Matches `集合的一个属性是只读的。在执行正则表达式时,可能产生零个或多个 Match 对象。每个 Match 对象都提供了与正则表达式匹配的字符串的访问入口、字符串的长度,以及标识匹配位置的索引。

学习了这三个对象和集合,如何应用于字符串的判断和替换呢?regExp对象的三个方法正好解决了这个问题,它们是Replace方法、Test方法和Execute方法。

1、Replace 方法

替换在正则表达式查找中找到的文本。我们还是先看个例子:下面的例子说明了 Replace 方法的用法。

<%

Function ReplaceTest(patrn, replStr)

Dim regEx, str1 ' 建立变量。

str1 = "The quick brown fox jumped over the lazy dog"

Set regEx = New RegExp ' 建立正则表达式。

regExPattern = patrn ' 设置模式。

regExIgnoreCase = True ' 设置是否区分大小写。

ReplaceTest = regExReplace(str1, replStr) ' 作替换。

End Function

Responsewrite ReplaceTest("fox", "cat") & "<BR>" ' 将 'fox' 替换为 'cat'。

Responsewrite ReplaceTest("(\S+)(\s+)(\S+)", "$3$2$1") ' 交换词对

%>

2、Test 方法

对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。正则表达式搜索的实际模式是通过RegExp对象的Pattern属性来设置的。RegExpGlobal属性对Test方法没有影响。

如果找到了匹配的模式,Test方法返回True;否则返回False。下面的代码说明了Test 方法的用法。

<%

Function RegExpTest(patrn, strng)

Dim regEx, retVal ' 建立变量。

Set regEx = New RegExp ' 建立正则表达式。

regExPattern = patrn ' 设置模式。

regExIgnoreCase = False ' 设置是否区分大小写。

retVal = regExTest(strng) ' 执行搜索测试。

If retVal Then

RegExpTest = "找到一个或多个匹配。"

Else

RegExpTest = "未找到匹配。"

End If

End Function

Responsewrite RegExpTest("is", "IS1 is2 IS3 is4")

%>

3、Execute 方法

对指定的字符串执行正则表达式搜索。正则表达式搜索的设计模式是通过 RegExp 对象的 Pattern 来设置的。

Execute 方法返回一个 Matches 集合,其中包含了在 string 中找到的每一个匹配的 Match 对象。如果未找到匹配,Execute 将返回空的 Matches 集合。

三、JavaScript中正则表达式的使用

在JavaScript 12版以后,JavaScript也支持正则表达式。

1、replace

replace在一个字符串中通过正则表达式查找替换相应的内容。replace并不改变原来的字符串,只是重新生成了一个新的字符串。如果需要执行全局查找或忽略大小写,那么在正则表达式的最后添加g和i。

例:

<SCRIPT>

re = /apples/gi;

str = "Apples are round, and apples are juicy";

newstr=strreplace(re, "oranges");

documentwrite(newstr)

</SCRIPT>

结果是:"oranges are round, and oranges are juicy"

例:

<SCRIPT>

str = "Twas the night before Xmas";

newstr=strreplace(/xmas/i, "Christmas");

documentwrite(newstr)

</SCRIPT>

结果是:"Twas the night before Christmas"

例:

<SCRIPT>

re = /(\w+)\s(\w+)/;str = "John Smith";

newstr = strreplace(re, "$2, $1");

documentwrite(newstr)

</SCRIPT>

结果是:"Smith, John"

2、search

search通过正则表达式查找相应的字符串,只是判断有无匹配的字符串。如果查找成功,search返回匹配串的位置,否则返回-1。

search(regexp)

<SCRIPT>

function testinput(re, str){

if (strsearch(re) != -1)

midstring = " contains ";

else

midstring = " does not contain ";

documentwrite (str + midstring + resource);

}

testinput(/^[1-9]/i,"123")

</SCRIPT>

3、match

match方法执行全局查找,查找结果存放在一个数组里。

例一:

<SCRIPT>

str = "For more information, see Chapter 3451";

re = /(chapter \d+(\\d))/i;

found = strmatch(re);

documentwrite(found);

</SCRIPT>

显示结果:Chapter 3451,Chapter 3451,1

例二:

<SCRIPT>

str = "abcDdcba";

newArray = strmatch(/d/gi);

documentwrite(newArray);

</SCRIPT>

显示结果D, d

四、示例

1 、判断数字的正确性

<%@ Language=VBScript %>

<script language="javascript" runat="server">

function isNumeric(strNumber) {

return (strNumbersearch(/^(-|\+)\d+(\\d+)$/) != -1);

}

function isUnsignedNumeric(strNumber) {

return (strNumbersearch(/^\d+(\\d+)$/) != -1);

}

function isInteger(strInteger) {

return (strIntegersearch(/^(-|\+)\d+$/) != -1);

}

function isUnsignedInteger(strInteger) {

return (strIntegersearch(/^\d+$/) != -1);

}

</script>

<HTML>

<BODY>

<b>判断数字的正确性</b>

<%

Dim strTemp

strTemp = CStr(RequestForm("inputstring"))

If strTemp = "" Then strTemp = "0"

%>

<TABLE BORDER="1" CELLPADDING="4" CELLSPACING="2">

<TR>

<TD ALIGN="right"><B>原始字符串</B></TD>

<TD><%= strTemp %></TD>

</TR>

<TR>

<TD ALIGN="right"><B>数字</B></TD>

<TD><%=isNumeric(strTemp)%></TD>

</TR>

<TR>

<TD ALIGN="right"><B>非负数字</B></TD>

<TD><%=isUnsignedNumeric(strTemp)%></TD>

</TR>

<TR>

<TD ALIGN="right"><B>整数</B></TD>

<TD><%=isInteger(strTemp)%></TD>

</TR>

<TR>

<TD ALIGN="right"><B>非负整数()</B></TD>

<TD><%=isUnsignedInteger(strTemp)%></TD>

</TR>

</TABLE>

<FORM ACTION="<%=RequestServerVariables("SCRIPT_NAME")%>" METHOD="post">

请输入一个数字:<BR>

<INPUT TYPE="text" NAME="inputstring" SIZE="50"></INPUT><BR>

<INPUT TYPE="submit" Value="提交"></INPUT><BR>

</FORM>

</BODY>

</HTML>

2、判断Email地址的正确性

<%

Function isemail(strng)

isemail = false

Dim regEx, Match

Set regEx = New RegExp

regExPattern = "^\w+((-\w+)|(\\w+))\@[A-Za-z0-9]+((\|-)[A-Za-z0-9]+)\[A-Za-z0-9]+$"

regExIgnoreCase = True

Set Match = regExExecute(strng)

if matchcount then isemail= true

End Function

%>

<td

class="()">()</td>

上面是表达式,到易语言环境里面要处理下引号的问题你懂的。

然后创建一个变量,类型为正则表达式,再创建一个变量,类型为搜索结果。正则表达式先使用创建()方法,然后后面的 *** 作记得不太清楚了,手头没有易语言环境对了!记着取子匹配文本,取第二个括号里的内容才是你想要的哦。

LS用取文本中间的思想也是可以的。

LZ跟我一样,XML的解析我也用正则,用来不用XML解析的类(难道这是强迫症!)

纯手打,希望采纳。如果有问题还可以追问!

需要准备的材料分别有:电脑、html编辑器、浏览器。

1、首先,打开html编辑器,新建html文件,例如:indexhtml,并引入jquery,编写问题基础代码。

2、在indexhtml中的<script>标签,输入jquery代码:

$('body')append($('tr')find('td:eq(0)')text());

3、浏览器运行indexhtml页面,此时成功取到了表格的第一页数据并打印。

以上就是关于易语言:正则表达式如何取多行文本中的内容全部的内容,包括:易语言:正则表达式如何取多行文本中的内容、怎么用JQ获得表格中的文本、怎么获取jsp中table里面td文本值的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9529142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存