提取具有特殊字符的子字符串 - Oracle

时间:2017-05-09 06:37:13

标签: sql regex oracle

在我的专栏中,有一个字符串,其中包含以字符'='开头的单词。如何提取这些单词?我找到了REGEXP_SUBSTR,但我找不到特定的正则表达式来做到这一点?我感谢任何帮助。感谢。

编辑:

我有这样一个字符串:

"What a =lovely day!"

我想获得"=lovely"

3 个答案:

答案 0 :(得分:2)

您可以使用regexp_substr:

select regexp_substr(col, '=\S+')
from your_table;

=\S+

  • = - 匹配文字=
  • \S+ - 匹配一个或多个非空格字符

答案 1 :(得分:1)

尝试

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    	<script type="text/javascript">

    	$(document).ready(function()
    	{
    		//validation();
    	});
    	function validation()
    	{
    		var flag=0;
    		var a=$("#stname").val();
    		//alert(a);
    		if(a=="")
    		{
    			flag++;
    			$("#errName").html('Please Enter Name');
    			$("#errName").css('color', 'red');
    		}
    		else
    		{
    			$("#errName").html('');
    		}
    		var b=$("#smob").val();
    		if(b=="")
    		{
    			flag++;
    			$("#errMob").html('Please Enter Mobile');
    			$("#errMob").css('color', 'red');
    		}
    		else if(isNaN(b))
    		{
    			flag++;
    			$("#errMob").html('Please Enter Numeric Mobile No');
    			$("#errMob").css('color', 'red');
    		}
    		else
    		{
    			$("#errMob").html('');
    		}
    		var c=$("#semail").val();
    		if(c=="")
    		{
    			flag++;
    			$("#errEmail").html('Please Enter Email');
    			$("#errEmail").css('color', 'red');
    		}
    		else
    		{
    			$("#errEmail").html('');
    		}
    		var d=$("#sadd").val();
    		if(d=="")
    		{
    			flag++;
    			$("#errAdd").html('Please Enter Address');
    			$("#errAdd").css('color', 'red');
    		}
    		else
    		{
    			$("#errAdd").html('');
    		}
    		var e=$("#sname").val();
    		if(e=="")
    		{
    			flag++;
    			$("#errSchool").html('Please Choose School');
    			$("#errSchool").css('color', 'red');
    		}
    		else
    		{
    			$("#errSchool").html('');
    		}
    		//alert(flag);
    		if(flag>0)
    		{
    			return false;
    		}
    		else
    		{        			window.location.href="http://127.0.0.1/CI/index.php/admin/school_controller/student_insert";
    		}
    	}
    </script>    

    <!DOCTYPE html>
    <html>
    <head>
    	<title>This is Teacher Page</title>
    </head>
    <body>
    <center>
    <form method="post" action="" onsubmit="return validation()">
    <?php echo validation_errors();?>
    	<table border="1">
    		<tr>
    			<td colspan="2" align="center">
    			<h1>Student Insert Page</h1>
    			</td>
    		</tr>
    		<tr>
    			<td>Name:-</td>
    			<td><input type="text" name="stname" id="stname"><span id='errName'></span></td>
    		</tr>
    		<tr>
    			<td>Mobile No:-</td>
    			<td><input type="text" name="stmob" id="smob"><span id='errMob'></span></td>
    		</tr>
    		<tr>
    			<td>Email Id:-</td>
    			<td><input type="text" name="stemail" id="semail"><span id='errEmail'></span></td>
    		</tr>
    		<tr>
    			<td>Address:-</td>
    			<td><input type="text" name="stadd" id="sadd"><span id='errAdd'></span></td>
    		</tr>
    			<input type="hidden" name="user_level" value="S">
    		<tr>
    			<td>School Name</td>
    			<td>
    				<select name="sname" id="sname">
    				<option value="">Select Any</option>
    				<?php 
    					if(isset($school))
    					{
    						foreach ($school as  $value) {
    							?>
    							<option value="<?php echo $value['id'];?>"><?php echo $value['name'];?></option>
    							<?php
    						}
    					}
    				?>
    		</select><span id='errSchool'></span>
    			</td>
    		</tr>
    		<tr>
    			<td colspan="2" align="center"><input type="submit" name="submit" value="Insert" ></td>
    		</tr>
    	</table>
    </form>
    </center>
    </body>
    </html>

取决于您的需求。

答案 2 :(得分:1)

此外,如果您想根据特殊字符列表进行匹配,请使用以下内容。

在此示例中,您可以匹配=#。如果您愿意,可以添加更多特殊字符。

此外,如果您希望仅返回=,以防在此之后缺少休息字,则使用\S*。否则使用\S+

对于没有此格式的字符串,您将获得null

select regexp_substr(col1,'[=#]\S*') from
(select 'what a =lovely day' as col1 from dual union all
select 'some other #word as' from dual union all
select 'a normal string' from dual)