in the regular expression non-pl/sql variable

Hello again people.

Wondering just if possible to pass a value of variable column in the regexp_substr model? Given: column_value = 123
RegExp (string, pattern), where the model includes column_value? column_value can change at any time according to the value of the column in the table.

Thank you!

Published by: user11922215 on August 16, 2010 20:20

Published by: user11922215 on August 16, 2010 20:21

Hello

Of course, you can use variables like this.
By example, to see if x precedes y in one ',' - list delimited:

REGEXP_LIKE ( string
         , ','      ||
           x          ||
           ',.*,'     ||
           y          ||
           ','
         )

x and there can be any kind of expression that reutrns one string, including the columns, function calls and expressions BOX.

Tags: Database

Similar Questions

  • Using the regular Expression of PL/SQL.

    Has ' light, I'm braindead today and cannot understand this. I have data that may be in the following formats:

    format 1:123 (A XXX)"
    format 2:123 (A (XXX) Z)'
    Formula 3:123 (A (XXX) Z) (B (YYY) Z)'

    Looking for a regular expression that will analyze the data and return to:

    result 1: "(un XXX)" "
    result 2: "(un (XXX) Z)" "
    result 3: "(un (XXX) Z)" "

    Thanks for your help.

    Administer a shot:

    SQL> WITH test_data AS
      2  (
      3          SELECT '123 (A XXX)' AS TXT FROM DUAL UNION ALL
      4          SELECT '123 (A (XXX) Z)' AS TXT FROM DUAL UNION ALL
      5          SELECT '123 (A (XXX) Z)(B (YYY) Z)' AS TXT FROM DUAL
      6  )
      7  SELECT  REGEXP_SUBSTR
      8          (
      9                  TXT
     10          ,       '\([[:alpha:]]{1} \(?[[:alpha:]]{3}\)? ?[[:alpha:]]?\)?'
     11          )       AS NEW_TXT
     12  FROM    TEST_DATA
     13  /
    
    NEW_TXT
    --------------------------
    (A XXX)
    (A (XXX) Z)
    (A (XXX) Z)
    

    HTH!

  • How can I refer to a variable in the regular expression

    Hello friends,

    I have this Regexp, extract the County code: (971)
    Select regexp_replace (regexp_replace ('05-000971 7910-324324', '\D'),'^ 0 * (971)? 0?') of double;
    It is very good and the need...

    But, thinking about the future, someone may need to remove the country code (961), so it is better if I put the code in a variable, but

    How can I list the County code via a variable since the Regexp:
    declare 
    a varchar2 (15);
    code number := 971;
    begin
    select regexp_replace(regexp_replace('000971 05 7910 - 324324','\D'),'^0*(code)?0?') into a from dual;
    dbms_output.put_line ( a);
    end;
    but it does not work?

    Best regards
    Fateh

    You must link the value of the variable code in the regular expression pattern

    
    select regexp_replace(regexp_replace('000971 05 7910 - 324324','\D'),'^0*('||code||')?0?') into a from dual 
    
  • The regular expression problem

    Dear friends,

    In my script I have some sections that test the contents of an edit field before it is processed further.

    Perfectly things like the following:

    var re_Def = /#[A-Za-z][A-Za-z0-9_]+/;          // valid variable name ?
    items = ["#correct", "notcorrect", "#This_is4", "#thisIs", "@something", "#ALLOK", "", ];
    // search    0            -1          -1!!        -1!!          -1        -1!!     -1      <--- incorrect method
    // test    true         false         true        true        false       true    false    <--- correct method
    for (var j = 0; j < items.length; j++) {
      var item = items[j];
      alert ("'" + item + "' ==> " +  item.search(re_Def) + "\n" + re_Def.test(item));
    }
    var re_Def = /(\[ROW +\d+\]|\[COL +\d+\]|\[CELL +\d+, +\d+\]|Left *\(\d*\)|Right *\(\d*\)|Above *\(\d*\)|Below *\(\d*\))/;
    items = ["[ROW 17]", "[Row n]", "[ROW n]", "[CELL 3, 9]", "[CELL 3 9]", "Abbove()", "Right(3)"];
    // result  true        false      false         true         false        false         true    
    for (var j = 0; j < items.length; j++) {
      alert ("'" + items[j] + "' ==> " +  re_Def.test(items[j]));
    }
    

    But what follows always returns false, independly of the content of the string element:

    var re_Def = /{[EFJ]\d*}|{I}/;    // valid format def?
    var item = "{E27}";
    var result = re_Def.test(item);
    alert (result);                   // false !!
    

    RegEx buddy told me, that
    -l' REGULAR expression is correct
    -the result must be true, not false

    -The verbose definition of the RegEx is:
    Match is the following regular expression (attempting the next alternative only if this one fails) "{\d* [EYF]}."
    Match the character "{" literally "{}".
    Match a single character present in the list "J" "[EYF]."
    Match a single digit 0. 9 paper"\d*»
    Between zero and unlimited times, as many times as possible, giving as needed (greedy) «*»
    Match the character "}" literally "}".
    Or match number 2 below (the entire match attempt fails if it cannot match) regular expression "{i}".
    Match the characters "{i}" literally "{i}".

    Typo unrecognized? Test the faulty method?

    Results are fake, as soon as I use the list of characters []] - but look at the first block of code: there are also lists of character they are treated properly.

    The braces in the regular expression must be escaped to be taken literally:

    var re_Def = /\{[EFJ]\d*\}/;
    

    Kind regards

    JoH

  • The regular expression Dilimit

    How can I delimit the regular expression with the number sign (#) and then use an apostrophe in the expression.
    Can someone give some explamples.

    As regular expressions are placed in quotation marks, and I have an apostrophe in a string also how would I be able to specify the regular expression with a sign by dilimiting #.


    Thank you

    Published by: LostWorld Sep 15, 2010 05:40

    Hello

    Not sure I understand the question you are faced with, but I think using q citing might help:

    SQL> with t as (
      2  select 'abcd ''1234''' str from dual)
      3  -- end of sample data
      4  select str, regexp_substr(str, q'#'1234'#') str from t;
    
    STR         STR
    ----------- -----------
    abcd '1234' '1234'
    

    The symbol # now includes the string in the example above.

    You can view the documentation for more information in the link below:
    http://download.Oracle.com/docs/CD/E11882_01/server.112/e17118/sql_elements003.htm

  • I know by logic box to get the output using the regular expression?

    Hello

    I am now only study the notion of Regexp. I had seen the best of Mr. Blus. Can I know how it works. I need this logic of the functionality of wildcards in sting matching Regexp (wildcard string Matching).
    SQL> ed
    Wrote file afiedt.buf
     
      1  WITH test_data AS (
      2  SELECT 'c:\temp\folderA\fileA.txt' t FROM DUAL UNION ALL
      3  SELECT 'c:\temp\fileA.txt' t FROM DUAL UNION ALL
      4  SELECT '\\mymachine\A\fileB.txt' t FROM DUAL UNION ALL
      5  SELECT '\\mymachine\A\B\fileB.txt' t FROM DUAL UNION ALL
      6  SELECT '\\mymachine\A\B\C\image.jpg' t FROM DUAL UNION ALL
      7  SELECT '\\mymachine\A\B\C\D\music.mpg' t FROM DUAL UNION ALL
      8  SELECT 'c:\myfolder\folderD\folderE\4969-A.txt' t FROM DUAL
      9  )
     10  select regexp_replace(t, '^.*[\]([^\]*)[\][^\]*$','\1')
     11* from test_data
    SQL> / 
     
    REGEXP_REPLACE(T,'^.*[\]([^\]*)[\][^\]*$','\1')
    ------------------------------------------------------------------
    folderA
    temp
    A
    B
    C
    D
    folderE
     
    7 rows selected.
     
    SQL>
    Please help me in this matter.

    Iqbal

    Sabrina wrote:
    One last question what is the average of

    The final "\1" in

     select regexp_replace(t, '^.*[\]([^\]*)[\][^\]*$','\1') 
    

    Iqbal

    It is a reference.

    See here:
    http://download.Oracle.com/docs/CD/B19306_01/AppDev.102/b14251/adfns_regexp.htm#CHDHCIGH

    and in the middle of the table here:
    http://download.Oracle.com/docs/CD/B19306_01/AppDev.102/b14251/adfns_regexp.htm#CHDIEGEI

    Matches the nth previous subexpression, in other words, either grouped in parentheses, where n is an integer between 1 and 9. The parentheses cause > an expression be remembered; a backreference refers to him. A backreference account subexpressions from left to right, starting with the opening > bracket of each subexpression preceding. The expression is not valid if the source string contains less than n subexpressions preceding the \n.

    Oracle supports the expression of backreference in the regular expression pattern and the replacement of the REGEXP_REPLACE function string.
    The expression (abc: def) matches the strings abcxyabc and defxydef xy\1, but does not abcxydef or abcxy.

    A backreference allows you to search for a string repeated without knowing the actual string advance. For example, the expression ^(.*) \1$ > matches a line consisting of two adjacent instances of the same string.

    As explained in table 4-2, backreferences store sub-expressions matched in a temporary buffer, which allows to reposition the characters. You access the pads with the notation \n, where \n is a number between 1 and 9. Each subexpression brackets and is numbered from left to right.

  • Is the function of the regular Expression

    Hi guys, using this model, I got this error:

    -4600 error has occurred during the regular expression match.

    I have attached the VI.

    can you help me? Thank you

    inuyasha84 wrote:

    Hi well I want to save (create) a file and do a check to see if the new file that I want to create already exists or not. If the idea was to see if the path of the new file is equal to the old path

    Why not just use 'check if the file or folder exists? (E/s files-> Adv file functions)

    Cameron

  • Analyze the Mac address with the regular expression matching

    Hello world

    I have a problem with the function of regular expression matching,

    I try to analyse the response both a query arp - a 192.168.0.15 to retrieve the MAC address of the remote IP address, I used the following regular expression: ^ ([0-9a-fA-F]{2}[:-]){5}([0-9a-fA-F]{2})$

    I wonder why should I do a subset of the first string to extract only the part of the MAC address. The regular Expression function is not able to recognize the regular expression directly in the middle of a string?

    I only works when I extracted the subset of tring right as in the picture below.

    Thanks for your replies.

    Get rid of the "^" at the beginning of your regular expression. You are ordering him to find the model at the beginning of the string.

  • The Regular Expressions and GUID.

    Hello gurus, I hope you can help me!
    I need to select GUID from a table and to do this, I need the regular Expression. My
    Perl is not good and not good Regular Expression. My database is Oralce 11.2.0.2.0 and
    Linux (Oracle Version 6) is the operating system of the Machine. If you need further information,
    I'll look closely. Thank you. Jehangir.

    >

    Hi Jehangir and welcome to the forums.

    I need to select the GUID of a table and to do this,

    Well, the first thing we do is read the forum FAQ and also the post by BluShadow
    at the top of the messages on the home page of the forum. You should have provided code (DDL
    and DML) showing your particular problem, but since it's your first time, I'll be gentle ;)

    We have it done - clients have sometimes GUID as PKs, and we need to send data to
    their systems, but it is not as simple as it may first appear.

    GUID may arise in three formats.

    The Oracle one - SELECT Sys_GUID() from DUAL which is just a string of 32 hexadecimal characters.
    Then the chain with the hyphen, then the string with dashes and {} at the beginning and end (see
    examples of data).

    with datax as
    (
      SELECT '79A864CCD8E44CD8B0A2765DF9EF337B' as guid  FROM DUAL  UNION ALL
      SELECT '79A864CFD8E44CD7B0A2765DF9EF337B' FROM DUAL UNION ALL
      SELECT '8gdfsgsgfdg' FROM DUAL UNION ALL  -- dummy for testing
      SELECT '21EC2020-3AEA-1069-A2DD-08002B30309D' FROM DUAL UNION ALL
      SELECT '21EC5550-3AEA-1069-A2FF-08002B30309D' FROM DUAL UNION All
      SELECT '{21CC2020-3AFA-1A69-A2DD-08002B30309D}' FROM DUAL
    )
    
    -- first one is the Oracle format
    select * from datax where regexp_like(guid, '[0-9a-fA-F]{32}'); -- Oracle select sys_guid();
    
    -- second one is with hyphens
    
    select * from datax where regexp_like(guid, '[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}');
    
    -- third one is with hyphens and curly brackets.
    
    select * from datax where regexp_like(guid, '^\{[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}\}$');
    
    -- This converts both of the last two formats back into Oracle format, which is what
    -- we use. Notice, that I haven't used regualar expressions to do this. Regexes are
    -- computationally expensive, and you should use Oracle's string furnctions if possible
    
    SELECT REPLACE(REPLACE(REPLACE(GUID, '{', ''), '}', ''), '-', '')  FROM Datax;
    

    HTH,

    Paul...

    Jehangir.

  • Sense of the regular expression in detail

    Hi all

    I don't know if this question is to type correct forum but my question is

    What is retail mean more regex? Please help me understand this character by character.

    Expression is ^ [(\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.) + [A - Z] {2,4} $]

    Thank you

    sabre150 wrote:
    In general terms, that the regular expression is a poor attempt to check email address syntax. Very bad because it does not cover the complete specification.

    Yes. And after that: If your application looks at the e-mail address (valid) of someone and told them that this is not an email address valid, they will think you are a fool. And if your application is used for commercial purposes, which would be a black mark against your company. You're better not to validate e-mail addresses to all that the implementation of a solution with false negatives.

  • Reading the value of a PL/SQL variable

    Hello

    I have a requirement where I need to read the contents of a pl/sql variable and then write in an operating system file. a .sql or .txt file.

    What can I do with it?

    Any help will be much appreciated.

    Kind regards
    SID

    Hello

    Example script e.r.y

    DECLARE
    v_output UTL_FILE.FILE_TYPE;
    CURSOR c1
    IS
    select cust_cod,mobile_no
    from main_master
    where rownum <11;
    BEGI
    v_output:=UTL_FILE.FOPEN('/rman/report/textfiles/','OUTPUT_DATA.TXT','W');
    /**You should have write permission to write onto direcotry /rman/report/textfiles ***/
    FOR i IN c1
          LOOP
    UTL_FILE.PUT_LINE(v_output,i.cust_cod||'  '||i.mobile_no);
    END LOOP;
    UTL_FILE.FCLOSE(v_output);
    END;
    

    Kind regards
    Claudy

  • Form validation helps with the regular Expression [a-zA-Z]

    I'm trying to use the regular expression [a-zA-Z] to allow only upper or lowercase WITHOUT SPACES. With the help of [a-zA-Z] allows space and numbers.

    Could someone give me a point in the right direction?

    Thank you!

    RGNelson wrote:

    I'm trying to use the regular expression [a-zA-Z] to allow only upper or lowercase WITHOUT SPACES. With the help of [a-zA-Z] allows space and numbers.

    Could someone give me a point in the right direction?

    Please try with the following regular expression, which should work for text entry fields 'a line' well standard.

    ^ [A-Za-z] + $

    See you soon,.

    Günter

  • How to read a file of all the text in a pl/sql variable?

    Hi, I need to read an entire text file - which actually contains an e-mail message from a system of content management - in a variable in a pl/sql package, in order to insert the database information and then send the email. I want to read the whole of a sudden text file, no not one line at a time. Shoud I use Utl_File.Get_Raw or is there a more appropriate to do this?

    How to read a file of all the text in a pl/sql variable?

     ...
    your_clob_variable := dbms_xslprocessor.read2clob('YOUR_DIRECTORY','YOUR_FILE');
    ....
    
  • The clob data analysis - helps in the regular Expression

    Hello

    Need to analyze a clob and and get its value.

    with the temp as

    (select '-dn=cn=9245fe4a-d402-451c-b9ed-9c1a04247482,ou=people,dc=idauth-userstore,dc=standardlife,dc=com' as double val)

    Select * Temp;

    "Analysis to include only the characters after ' dn = cn =" and ending with a comma, so I need to value the O/P as feadcbedca


    How to achieve this using regular expressions.


    Also is it a useful site to learn Oracle regular expressions for beginners like me.

    If yes give me the link, it will be useful.


    Thanks in advance

    SQL> with temp
      2  as
      3  (
      4  select '- dn=cn=9245fe4a-d402-451c-b9ed-9c1a04247482,ou=people,dc=idauth-userstore,dc=standardlife,dc=com' as val from dual
      5  )
      6  select regexp_replace(ltrim(regexp_substr(val, 'dn=cn=[^,]+'), 'dn=cn='), '[^[:alpha:]]') val
      7    from temp;
    
    VAL
    ----------
    feadcbedca
    
    SQL>
    
  • How to add regular expressions in viewobject bind variable

    Hello

    Java class is used to set the bind variable adf

    vm.setWhereClause ("name =: fname");
    vm.defineNamedWhereClauseParam ("Pnom", null, null);
    vm.setNamedWhereClauseParam ("fname", "Alana");

    It works great and it returns Alana

    But what I want is to define a regular expression when he returned all the names that start with A.

    I tried with this.

    vm.setNamedWhereClauseParam("fname","A*");

    also

    vm.setNamedWhereClauseParam("fname","A%"); "

    but the two did not work.

    Help, please.

    Thank you
    Hari

    What is

         vm.setWhereClause("FIRST_NAME LIKE :fname||'%'");
         vm.defineNamedWhereClauseParam("fname", null, null);
         vm.setNamedWhereClauseParam("fname","A");
    

    aRUN-

Maybe you are looking for

  • iTunes game 'Option of renewal' in iTunes 12.5.1?

    I installed iTunes 12.5.1. I had iTunes game, but isn't Apple music. I went to iTunes - > account - > view my account There is a category "iTunes in the Cloud", but no mention of iTunes game. He used to have an auto-renew date. Now it lists just "Man

  • Install Firefox sync does not not on fresh Ubuntu

    Fresh installation of Ubuntu 64-bit 13.10 with a new installation of Firefox 25. The installation of Firefox Sync program worked flawlessly, except that it does not work. I not encounter errors, and when I said to synchronize the process seems to com

  • Satellite C50 - B - BT has failed to work

    Bluetooth on my C50 - B Satellite has no function. What operating system is appropriate for my device?

  • MyScript Notes mobile

    Hello You have a weird problem with the script of note tool. Everything was find work after the ota3 and a factory restore to be sure to start ics with a clean tablet. But since last night, all the notes that I took have disappeared. I mean the book

  • On my laptop I have error side by side cannot download anything help

    How to fix my phone I configrations side by side, that I can not download anything