RegEx Query - non alpha numeric characters
Hi,
On our Oracle EBS system users can paste data into the system and "strange" characters are not trapped, therefore they can paste into forms from e.g. word and include non standard characters. Sorry if that sounds vague.
I need to be able to find the non alphanumeric chars in a table which are "breaking" an interfaced system which takes data from Oracle and puts some of it into an XML file. Other valid characters we don't have a problem with are e.g.
!"£$%^&*()_+-=[{]};:'@,<.>/?\|
For example, I know one character that causes a problem is the character MS Word uses to replace a dash.
e.g. if I type:
*this - that*
Word changes it to:
*This – that*
That's a character I can't type on my keyboard, and an example of a character I'd like to be able to find using SQL.
There are probably others, but all I would like to do is to find "non standard" characters.
I have one sample transaction ID I know contains the funny MS dash, so this SQL returns it:
SELECT pec.expenditure_comment
FROM pa.pa_expenditure_comments pec
WHERE REGEXP_LIKE (pec.expenditure_comment
, '(^ )|[^[:alnum:] &!"£$%^()_+=-{};:@#~,<.>/?\|]')
AND pec.expenditure_item_id = 6445260However, it also returns other records which don't contain funny characters, so I don't think it is working correctly.
Hence me asking for advice here. Any assistance would be much appreciated.
Thanks
966480 wrote:
Hi,
On our Oracle EBS system users can paste data into the system and "strange" characters are not trapped, therefore they can paste into forms from e.g. word and include non standard characters. Sorry if that sounds vague.
I need to be able to find the non alphanumeric chars in a table which are "breaking" an interfaced system which takes data from Oracle and puts some of it into an XML file. Other valid characters we don't have a problem with are e.g.
!"£$%^&*()_+-=[{]};:'@,<.>/?\|Are the square bracket characters, '[' and ']' acceptable? The code you posted below doesn't allow them.
For example, I know one character that causes a problem is the character MS Word uses to replace a dash.
e.g. if I type:
*this - that*
Word changes it to:
*This – that*
That's a character I can't type on my keyboard, and an example of a character I'd like to be able to find using SQL.
There are probably others, but all I would like to do is to find "non standard" characters.Thee are some built-in character classes, such as [:print:] and [:graph:], that might make this job a little simpler for you.
I have one sample transaction ID I know contains the funny MS dash, so this SQL returns it:
SELECT pec.expenditure_comment
FROM pa.pa_expenditure_comments pec
WHERE REGEXP_LIKE (pec.expenditure_comment
, '(^ )|[^[:alnum:] &!"£$%^()_+=-{};:@#~,<.>/?\|]')
AND pec.expenditure_item_id = 6445260
The hyphen character ( '-' ) has a special meaning inside square brackets. If you want to include a literal hyphen in the set, then put it at the very beginning (right after the '[') or the very end (right before the ']'); for example:
WHERE REGEXP_LIKE (pec.expenditure_comment
, '(^ )|[^[:alnum:] &!"£$%^()_+={};:@#~,<.>/?\|-]')
{code}
The right square bracket, ']', also has a special meaning: it ends the set. If you want to include a literal right ']' in the set, it must be the very first character. The following code does not find the square brackets funny:
{code}
WHERE REGEXP_LIKE (pec.expenditure_comment
, '(^ )|[][^[:alnum:] &!"£$%^()_+={};:@#~,<.>/?\|-]')
However, it also returns other records which don't contain funny characters, so I don't think it is working correctly.The query you posted, and both of my suggestions, will pick strings that start with a space, whether or not any funny characters come later. If you want to accept strings whether or not they start with spaces (just so long as they do not contain any funny characters) then lose the '(^ )|'; for example:
WHERE REGEXP_LIKE (pec.expenditure_comment
, '[][^[:alnum:] &!"£$%^()_+={};:@#~,<.>/?\|-]')
{code}
>
Hence me asking for advice here. Any assistance would be much appreciated.I hope that answers your question.
If not, post some sample data (CREATE TABLE and INSERT statements) so people can re-create the problem and test their ideas. Also post the correct results you want from the given sample data.
Edited by: Frank Kulash on May 31, 2013 10:11 AM
Similar Messages
-
Removing non-alpha-numeric characters from a string
How can I remove all non-alpha-numeric characters from a string? (i.e. only alpha-numerics should remain in the string).
Or even without a loop ?
Extract from the help for the Search and Replace String function :
Right-click the Search and Replace String function and select Regular Expression from the shortcut menu to configure the function for advanced regular expression searches and partial match substitution in the replacement string.
Extract from the for the advanced search options :
[a-zA-Z0-9] matches any lowercase or uppercase letter or any digit. You also can use a character class to match any character not in a given set by adding a caret (^) to the beginning of the class. For example [^a-zA-Z0-9] matches any character that is not a lowercase or uppercase letter and also not a digit.
Message Edité par JB le 05-06-2008 01:49 PM
Attachments:
Example_VI_BD4.png 2 KB -
Gists Created with non alpha numeric characters
Hi,
I am using Gists in my APEX application. When I upload a word document that contains tables and charts, I get a really long unmeaningful gist for that document.
For example, I get this gist (5x longer):
PROJECT MINT ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— PROJECT MINT ———————————————————————————————————————— ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— PROJECT MINT ——————————————————————————————————————————————————————————————————————————————————————————————————————
How can I only return or create gists that are alpha numeric?
Thanks,
jnguyenThere might be another option that I'm not aware of, but this might just do the trick for you (I don't have a live Oracle connection available to me at this moment so I couldn't test it, you might need to debug it):
select * from tablename where 0 <> length(replace(translate(lower(columnname),'abcdefghijklmnopqrstuvwxyz1234567890',' '),' ',''));
What it does is it takes the string from the column, converts all letters and digits into spaces, removes the spaces and compares the length with 0. If the string contains 'strange' characters, they will not get removed and thus turnup a length greater than 0. Pittfalls:
1) Make sure the number of spaces in the second argument of the translate is equal to the number of characters in the first argument.
2) This doesn't make use of indexes...
HTH,
Lennert -
Folks, is there a way of finding records in a varchar2 field which has funny characters. In this case users have entered funny characters (^ and others which I cannot produce) in the field and oracle has saved them successfully. When we send the file to other system they reject it.
Is there a way in Oracle where we can look for characters which are neither alpha or numeric?There might be another option that I'm not aware of, but this might just do the trick for you (I don't have a live Oracle connection available to me at this moment so I couldn't test it, you might need to debug it):
select * from tablename where 0 <> length(replace(translate(lower(columnname),'abcdefghijklmnopqrstuvwxyz1234567890',' '),' ',''));
What it does is it takes the string from the column, converts all letters and digits into spaces, removes the spaces and compares the length with 0. If the string contains 'strange' characters, they will not get removed and thus turnup a length greater than 0. Pittfalls:
1) Make sure the number of spaces in the second argument of the translate is equal to the number of characters in the first argument.
2) This doesn't make use of indexes...
HTH,
Lennert -
Outlook password non alpha-numeric characters
i just updated my password, including an @ symbol. The password works with AppleID and outlook via MSN, but when I try to update or reset the password on iPhone and iPad (both iOS8), they can't recognize the password. Anyone with workaround or similar issue?
There might be another option that I'm not aware of, but this might just do the trick for you (I don't have a live Oracle connection available to me at this moment so I couldn't test it, you might need to debug it):
select * from tablename where 0 <> length(replace(translate(lower(columnname),'abcdefghijklmnopqrstuvwxyz1234567890',' '),' ',''));
What it does is it takes the string from the column, converts all letters and digits into spaces, removes the spaces and compares the length with 0. If the string contains 'strange' characters, they will not get removed and thus turnup a length greater than 0. Pittfalls:
1) Make sure the number of spaces in the second argument of the translate is equal to the number of characters in the first argument.
2) This doesn't make use of indexes...
HTH,
Lennert -
IDOMServices Parse giving error for non-alpha numeric characters in content
Hi All,
Using Adobe InDesign CS4 SDK 557, I want to create IIDXMLDOMDocument * from a xml stored in a PMString variable.
I used the following code to parse the xml:-
InterfacePtr<IK2ServiceRegistry> servReg(GetExecutionContextSession(), UseDefaultIID());
InterfacePtr<IK2ServiceProvider> provider(servReg->QueryServiceProviderByClassID (kDOMParserService, kDOMParserServiceBoss ));
InterfacePtr<IDOMServices> domService( provider, UseDefaultIID() );
if(!domService)
break;
std::string stdString = myXMLString.GetPlatformString();
const char * buff = stdString.c_str();
InterfacePtr<IPMStream> pmStream(StreamUtil:: CreatePointerStreamRead( (char *)buff, stdString.size()));
IIDXMLDOMDocument * parsedDom = domService->Parse( pmStream );
- Now the problem is when myXMLString have some special character like “0x27” , “0x14” etc. then IDOMServices::Parse fails.
- I tried replacing these characters with “'”, “” but still IDOMServices::Parse fails.
I also tried to used ISAXServices::ParseStream, but it also gives error for the same character.
Also tried setting ISAXParserOptions::SetAbortAfterWarning(kFalse), but not changed in result.
Please let me know if I am missing something.
Thanks,
Jitendra Kumar SinghHi Nitika Saini,
Please let me know what's your patch level of BI 7 system.
I am also facing problem with transformations, I didn't see any transper routines in my system for 0IC_C03 - 2LIS_03_BX, LIS_03_BF, 2LIS_03_UM.
Here, my BI 7 patch level BI content 8 and BW pathc 16.
Thanks,
Chandra -
Removing alpha numeric characters
Hi,
Can anybody please tell me how can I remove the alpha numeric characters, inluding spaces from a column value.
Thanks in advanceThanks for the help. But this extracts the alpha
numeric characters and and print those. What I need
is i want all those column values without these alpha
numeric characters.You said...
Can anybody please tell me
how can I remove the alpha numeric characters, inluding spaces from a column value.So I showed you to to remove alpha numeric characters and spaces from a column value.
So I think you need to be clear in your requirements.
Do you want all rows where there are values that only have alpha numerics in them i.e. don't show the rows that have non-alpha numeric or spaces in a particular value?
or
Do you want all rows, but you want to strip out non alpha-numerics and spaces from particular values?
Perhaps if you give an example of your data and what you expect the result to be that may give us a better idea, because what I gave you as a solution was correct for the requirement you specified. -
Restating my issue / question...
When I send email from this iMac, there is a string of characters assigned. The characters are all the "alpha numeric" characters on the QWERTY key board. This only occurs when email is sent from this iMac. The issue does not manifest when using any other lap top or computer.
Hence, I have ruled out the issue is a yahoo mail matter.
Again, I can access the Yahoo mail account form multiple devices and send email without unintended assignment of character strings, but when I send wmail using this iMac, the issue happens everytime.
Characters are stacked verticaly in a column. It looks as if all characters (except function keys) are included in the string.
Any ideas?
GMcPlease read this whole message before doing anything.
This procedure is a diagnostic test. It won’t solve your problem. Don’t be disappointed when you find that nothing has changed after you complete it.
Third-party system modifications are a common cause of usability problems. By a “system modification,” I mean software that affects the operation of other software — potentially for the worse. The following procedure will help identify which such modifications you've installed. Don’t be alarmed by the complexity of these instructions — they’re easy to carry out and won’t change anything on your Mac.
These steps are to be taken while booted in “normal” mode, not in safe mode. If you’re now running in safe mode, reboot as usual before continuing.
Below are instructions to enter some UNIX shell commands. The commands are harmless, but they must be entered exactly as given in order to work. If you have doubts about the safety of the procedure suggested here, search this site for other discussions in which it’s been followed without any report of ill effects.
Some of the commands will line-wrap or scroll in your browser, but each one is really just a single line, all of which must be selected. You can accomplish this easily by triple-clicking anywhere in the line. The whole line will highlight, and you can then copy it. The headings “Step 1” and so on are not part of the commands.
Note: If you have more than one user account, Step 2 must be taken as an administrator. Ordinarily that would be the user created automatically when you booted the system for the first time. The other steps should be taken as the user who has the problem, if different. Most personal Macs have only one user, and in that case this paragraph doesn’t apply.
Launch the Terminal application in any of the following ways:
☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
☞ Open LaunchPad. Click Utilities, then Terminal in the icon grid.
When you launch Terminal, a text window will open with a line already in it, ending either in a dollar sign (“$”) or a percent sign (“%”). If you get the percent sign, enter “sh” and press return. You should then get a new line ending in a dollar sign.
Step 1
Triple-click the line of text below to select it:
kextstat -kl | awk '!/com\.apple/{printf "%s %s\n", $6, $7}' | open -f -a TextEdit
Copy the selected text to the Clipboard by pressing the key combination command-C. Then click anywhere in the Terminal window and paste (command-V). A TextEdit window will open with the output of the command. Post the contents of that window, if any — the text, please, not a screenshot. You can then close the TextEdit window. The title of the window doesn't matter, and you don't need to post that. No typing is involved in this step.
Step 2
Repeat with this line:
{ sudo launchctl list | sed 1d | awk '!/0x|com\.(apple|openssh|vix)|org\.(amav|apac|cups|isc|ntp|postf|x)/{print $3}'; sudo defaults read com.apple.loginwindow LoginHook; } | open -f -a TextEdit
This time you'll be prompted for your login password, which you do have to type. Nothing will be displayed when you type it. Type it carefully and then press return. You may get a one-time warning to be careful. Heed that warning, but don't post it. If you see a message that your username "is not in the sudoers file," then you're not logged in as an administrator.
Note: If you don’t have a login password, you’ll need to set one before taking this step. If that’s not possible, skip to the next step.
Step 3
launchctl list | sed 1d | awk '!/0x|com\.apple|org\.(x|openbsd)/{print $3}' | open -f -a TextEdit
Step 4
ls -1A /e*/mach* {,/}L*/{Ad,Compon,Ex,Fram,In,Keyb,La,Mail/Bu,P*P,Priv,Qu,Scripti,Servi,Spo,Sta}* L*/Fonts 2> /dev/null | open -f -a TextEdit
Important: If you formerly synchronized with a MobileMe account, your me.com email address may appear in the output of the above command. If so, anonymize it before posting.
Step 5
osascript -e 'tell application "System Events" to get name of every login item' | open -f -a TextEdit
Remember, steps 1-5 are all copy-and-paste — no typing, except your password. Also remember to post the output.
You can then quit Terminal. -
Sorting of alpha numeric characters in a column`
Hi All,
I have a column which has alpha numeric characters like 1A, 12B, 14D, 12CC ...etc.
I need to sort this column in ascending as well as descending. The normal "sort by" does not work and the ASCII function return on the ascii value of the 1st character in the cell.
Can you please help me out?Needed more sample data..
For provided data, ie if Number comes only at the beginning, you can ..
SQL> select c1
2 from t
3 order by to_number(translate(c1,translate(c1,'a0123456789','a'),' ')),c1;
C1
1A
12B
12CC
14D -
Using alpha-numeric characters as plotchart itemrenderers
I understand, a developer can import a gif or jpg image to use as a custom itemrenderer in a plotchart. I would like to be a litte more simple and use alpha-numeric characters as the itemrenderer. For example, a plot chart describing some data for Argentina and Brazil would contain a bunch of A's and B's scattered about the plotchart. Is there an easy way to do this without resorted to creating gifs and jpegs for each character I'd need to use.
wondering under Mac OSX is there a similar feature such as in a windows environment to do the Alt + 0169 which should equal the Copyright symbol.
Essentially no. On a Mac you use either the Character Palette or a keyboard shortcut like Option/Alt + g (which gives ©).
There is however a special software keyboard layout called Uncode Hex Input which lets you input Alt + the Unicode hex codepoint to produce characters. With that layout active, Alt + 00A9 gives you ©. -
How can I remove all non alpha/space characters from a string
Subject changed by moderator. Please use a meaningful subject in future.
Hi all,
Can anyone tell me.
how to get only alphabets & spaces from the string..
suppose..
raj*&{]afhajk ajkf_+#fkh jah jka7767jk hhha
I need only
rajafhajk ajkf fkh jah jkajk hhha
thanks..
Rajeev
Edited by: Matt on Feb 17, 2009 3:36 PMThis will work.
CONSTANTS:
sm2big(52) VALUE
'aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ'.
DATA:
str_out(60),
str_in(60) VALUE
'raj*&{]afhajk ajkf_+^#^fkh jah jka7767jk hhha',
my_len TYPE i,
pos1 TYPE i,
pos2 TYPE i.
START-OF-SELECTION.
COMPUTE my_len = strlen( str_in ).
CLEAR pos1.
CLEAR pos2.
WHILE pos1 LT my_len.
IF str_in+pos1(1) co sm2big
OR str_in+pos1(1) EQ ' '.
str_out+pos2(1) = str_in+pos1(1).
pos2 = pos2 + 1.
ENDIF.
pos1 = pos1 + 1.
ENDWHILE.
WRITE:/ 'String In', str_in.
WRITE:/ 'String Out', str_out.
and the output
String In raj*&{]afhajk ajkf_+^#^fkh jah jka7767jk hhha
String Out rajafhajk ajkffkh jah jkajk hhha -
How to generate password alpha numeric value
dear friends,
i have written a simple pl/sql to generate a password.
declare
cursor c1 is select * from passwd;
begin
for I in c1
loop
if I.pfno < 3000 then
update passwd set pwd=I.pfno where i.pfno=pfno;
ELSe
update passwd set pwd=lpad(round(I.pfno/20520),4,'0') where i.pfno=pfno;
commit;
end if;
end loop;
end;
In this the pfno is 8 digit alpha numeric. I get password generated when it is only numeric but how could i get if pfno is like 04MAS155.
Kindly help as i have to generate the same as early as possible. I have already been given with procedure to generate random password by our guys but still as i had already generated password to some employees in my concern based on querries like above i request your help to generate for alpha numeric 8 digit number.-- get a random string
FUNCTION string (opt char, len NUMBER)
/* "opt" specifies that the returned string may contain:
'u','U' : upper case alpha characters only
'l','L' : lower case alpha characters only
'a','A' : alpha characters only (mixed case)
'x','X' : any alpha-numeric characters (upper)
'p','P' : any printable characters
RETURN VARCHAR2; -- string of <len> characters (max 60)
PRAGMA restrict_references (string, WNDS); -
Form Validation - Alpha numeric
In the Spry Validation TextField, I want to validate that
only numbers and letters are used for the password field. Pattern
does not work because I do not care in what sequence people put in
the letters and numbers, I just want them to be limited to letters
and numbers. I tried editing SpryValidationTextField.js and adding
a field 'alphanumeric,' but I do not know the syntax that would be
used to ensure that only alpha numeric characters would be inserted
(or conversely, that any other character would not be allowed).
Please help. Thank you.Hi,
Try this:
var sprytextfield10 = new
Spry.Widget.ValidationTextField("sprytextfield10", "custom",
{validateOn:["blur", "change"], maxChars:35,
regExpFilter:/^[a-z0-9]*$/i, useCharacterMasking:true});
This will allow only alphanum characters usage only.
I think it is what you are looking for. I copy this from my
working form. -
Removing Non-numeric characters from Alpha-numeric string
Hi,
I have one column in which i have Alpha-numeric data like
COLUMN X
+91 (876) 098 6789
1-567-987-7655
so on.
I want to remove Non-numeric characters from above (space,'(',')',+,........)
i want to write something generic (suppose some function to which i pass the column)
thanks in advance,
MandipThis variation uses the like operators pattern recognition to remove non alphanumeric characters. It also
keeps decimals.
Code Snippet
CREATE FUNCTION dbo.RemoveChars(@Str varchar(1000))
RETURNS VARCHAR(1000)
BEGIN
declare @NewStr varchar(1000),
@i int
set @i = 1
set @NewStr = ''
while @i <= len(@str)
begin
--grab digits or (| in regex) decimal
if substring(@str,@i,1) like '%[0-9|.]%'
begin
set @NewStr = @NewStr + substring(@str,@i,1)
end
else
begin
set @NewStr = @NewStr
end
set @i = @i + 1
end
RETURN Rtrim(Ltrim(@NewStr))
END
GO
Code to validate:
Code Snippet
declare @t table(
TestStr varchar(100)
insert into @t values ('+91 (8.76) \098 6789');
insert into @t values ('1-567-987-7655');
select dbo.RemoveChars(TestStr)
from @t -
Mountain Lion Mail cannot search for non-alpha characters in Subject Lines
Under 10.8.3, Mail 6.3 often cannot successfully find messages if the search string contains a non-alpha character.
I have only tested this searching for Subject lines that are KNOWN to contain non-alpha characters
Specfic examples:
Subject starts with "[ABC..."
Mail cannot find it if you search using "[ABC"
Mail CAN find it if you search using just "ABC"
Subject contains the numeral "2"
Mail cannont find it if you enter "2" as the search string...even if you further constrain the search to "Subject contains: 2"
Other problem characters I have found:
The failure when using square bracket is a real pain since a lot of mailing lists are tagged using strings wrapped in square brackets.
Sometimes it WORKS when I include multiple non-alpha characters in the search string, like "55" or "4/19"
Anyone else see this?Please follow these directions to delete the Mail "sandbox" folder.
Back up all data.
Triple-click anywhere in the line below on this page to select it:
~/Library/Containers/com.apple.mail
Right-click or control-click the highlighted line and select
Services ▹ Reveal
from the contextual menu.* A Finder window should open with a folder named "com.apple.mail" selected. If it does, move the selected folder — not just its contents — to the Desktop. Leave the Finder window open for now.
Log out and log back in. Launch Mail and test. If the problem is resolved, you may have to recreate some of your Mail settings. You can then delete the folder you moved and close the Finder window. If you still have the problem, quit Mail again and put the folder back where it was, overwriting the one that may have been created in its place. Post your results.
Caution: If you change any of the contents of the sandbox, but leave the folder itself in place, Mail may crash or not launch at all. Deleting the whole sandbox will cause it to be rebuilt automatically.
*If you don't see the contextual menu item, copy the selected text to the Clipboard by pressing the key combinationcommand-C. In the Finder, select
Go ▹ Go to Folder...
from the menu bar, paste into the box that opens (command-V). You won't see what you pasted because a line break is included. Press return.
Maybe you are looking for
-
Can't boot into bios due to SMART Hard Disk Error
My hard drive failed and now im getting constant pop ups to replace it I'm thinking about transfering windows to an external drive until I can replace the internal one but I need access to the bios to set the boot priorty options anytime I use f10 to
-
How to handle the more than once from the same jsp files
Hi, i have a one jsp file with three buttons.each one having for different functionalities. like one for cancel, second for edit the values and third for save the values in databse. so i want to handle all these 3 buttons. how can test that which but
-
Reading a text file and plot it
Hi Friends, I have a file, the screen shot is being attached with this mail, what I need is, I want to read this file and plot it in a graph (In the file in between both values there is a tap specifier) Could you please provide a sample labview progr
-
Problem with offset value: field type p does not permit subfield access
Hi experts, In my table am having one field , Filed name : planfinish data type : dec Length : 15 data store in this field is : 12.05.2010 03:59:00 this format. i want to remove year 2010 from this above data by using offset. i have try with co
-
Is iWork the only option MAC users have for importing/editing/exporting Word Docs?